package cn.wsn2018.tools.util;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

/**
 * 封装Json格式返回状态的工具类，分为成功与失败两种情况
 */

public class JsonUtil {

    /**
     * 封装Json格式的返回成功时的状态，返回成功提示信息，并根据需要返回json对象或json数组(不需要返回时传null)
     * @param message 输入成功信息
     * @param object 根据需要返回json对象
     * @param arr 根据需要返回json数组
     * @return json格式的请求成功信息,state代表状态(成功或失败)，meta含成功提示信息,data含json格式的
     * 返回数据对象(一条数据)或json数组(一组同类数据)
     * @throws IllegalArgumentException
     */

    public static String successJson(String message, JSONObject object, JSONArray arr)
            throws IllegalArgumentException{
        JSONObject json=new JSONObject();
        JSONObject object1=new JSONObject();
        object1.put("state","success");
        object1.put("message",message);
        json.put("meta", object1);
        if(object!=null)
            json.put("data", object);
        if(arr!=null)
            json.put("data", arr);
        return json.toString();
    }

    /**
     * 封装Json格式的返回失败时的状态，返回失败提示信息
     * @param message 返回失败信息
     * @return json格式的请求失败信息,state代表状态(成功或失败)，meta含失败提示信息
     */
    public static String failedJson(String message){
        JSONObject json=new JSONObject();
        JSONObject object1=new JSONObject();
        object1.put("state","failed" );
        object1.put("message",message);
        json.put("meta", object1);
        return json.toString();
    }

}
